#include "mypushbutton.h"

#include<QDebug>
#include<QPropertyAnimation>

//MyPushBUtton::MyPushBUtton(QWidget *parent) : QPushButton(parent)
//{

//}

MyPushBUtton::MyPushBUtton(QString normalImg, QString pressImg)
{
    this->normalImgPath = normalImg;
    this->pressImgPath = pressImg;

    BtnImg(normalImg);

//    QPixmap pix;
//    bool ret = pix.load(normalImg);
//    if(!ret)
//    {
//        qDebug() << "图片加载失败";
//        return;
//    }
//    //设置图片固定大小
//    this->setFixedSize(pix.width(),pix.height());

//    //设置不规则图片模式
//    this->setStyleSheet("QPushButton{border:0px}");

//    //设置图标
//    this->setIcon(pix);

//    //设置图标大小
//    this->setIconSize(QSize(pix.width(),pix.height()));

}

void MyPushBUtton::zoom1()
{
    //创建动态对象
    QPropertyAnimation * animation = new QPropertyAnimation(this,"geometry");
    //设置动画的事件间隔
    animation->setDuration(200);
    //起始位置
    animation->setStartValue(QRect(this->x(),this->y(),this->width(),this->height()));
    //结束位置
    animation->setEndValue(QRect(this->x(),this->y()+10,this->width(),this->height()));
    //设置弹跳曲线
    animation->setEasingCurve(QEasingCurve::OutBounce);
    //执行动画
    animation->start();
}
void MyPushBUtton::zoom2()
{
    //创建动态对象
    QPropertyAnimation * animation = new QPropertyAnimation(this,"geometry");
    //设置动画的事件间隔
    animation->setDuration(200);
    //起始位置
    animation->setStartValue(QRect(this->x(),this->y()+10,this->width(),this->height()));
    //结束位置
    animation->setEndValue(QRect(this->x(),this->y(),this->width(),this->height()));
    //设置弹跳曲线
    animation->setEasingCurve(QEasingCurve::OutBounce);
    //执行动画
    animation->start();
}

void MyPushBUtton::mousePressEvent(QMouseEvent *e)
{
    if(this->pressImgPath != "")
    {
        BtnImg(this->pressImgPath);
    }
    //让父类执行其他内容
    return QPushButton::mousePressEvent(e);
}

void MyPushBUtton::mouseReleaseEvent(QMouseEvent *e)
{
    if(this->pressImgPath != "")
    {
        BtnImg(this->normalImgPath);
    }
    //让父类执行其他内容
    return QPushButton::mouseReleaseEvent(e);
}

void MyPushBUtton::BtnImg(QString img)
{
    QPixmap pix;
    bool ret = pix.load(img);
    if(!ret)
    {
        qDebug() << "图片加载失败";
        return;
    }
    //设置图片固定大小
    this->setFixedSize(pix.width(),pix.height());

    //设置不规则图片模式
    this->setStyleSheet("QPushButton{border:0px}");

    //设置图标
    this->setIcon(pix);

    //设置图标大小
    this->setIconSize(QSize(pix.width(),pix.height()));
}
